//package com.zmn.plat.dubbo.interfaces.product.tariff;
//
//import com.zmn.common.dto.KvDTO;
//import com.zmn.common.dto2.ResponseDTO;
//import com.zmn.plat.common.dto.brand.BaseBrandPageDRO;
//import com.zmn.plat.common.dto.product.tariff.TariffBackProductDRO;
//import com.zmn.plat.common.dto.product.tariff.TariffProductDIO;
//import com.zmn.plat.common.dto.product.tariff.TariffProductPageDRO;
//import com.zmn.plat.common.dto.product.tariff.brand.TariffBrandFactorDIO;
//import com.zmn.plat.common.dto.product.tariff.category.*;
//import com.zmn.plat.common.dto.product.tariff.item.*;
//import com.zmn.plat.common.dto.product.tariff.servcategory.TariffServCategoryDRO;
//import com.zmn.plat.common.dto.servcategory.ServCategoryChildrenDRO;
//import com.zmn.plat.dubbo.interfaces.price.MeterFlowRemoteService;
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiOperation;
//import io.swagger.annotations.ApiParam;
//
//import javax.validation.Valid;
//import javax.validation.constraints.NotNull;
//import java.util.List;
//
///**
// * @author tanbiao
// * @description:计价器相关接口
// * @since 2020/3/25 11:07
// * @modifier
// * @see MeterFlowRemoteService
// **/
//@Api(value = "计价器服务", tags = {"计价器"})
//@Deprecated
//public interface TariffProductListRemoteService {
//    /**
//     * 描述: 根据计价器二级分类ID查询关联的服务分类列表 必须参数 1. 试点标志：filterTariff 2. 计价器产品二级分类Id：showCategId 3. 城市Id：cityId 4. 渠道Id：channelId 可选参数 1. 业务类型：bizType
//     * 默认保外
//     *
//     * @param dio
//     * @return List<TariffServCategoryDRO> 前后台关联关系，以及其分类名称实体集合
//     * @auther tanbiao
//     * @see MeterFlowRemoteService#listServByQuery(com.zmn.plat.common.dto.price.meter.MeterServQuery)
//     */
//    @Deprecated
//    @ApiOperation(value = "根据计价器二级分类ID查询关联的服务分类列表", response = ResponseDTO.class, notes = "", tags = {"计价器"})
//    ResponseDTO<List<TariffServCategoryDRO>>
//        listServCategoryByChannelIdAndCityIdAndTariffCategoryId(@NotNull(message = "入参不能为空") @Valid @ApiParam(value = "入参", required = true) TariffCategoryRelationDIO dio);
//
//    /**
//     * 获取计价器产品 必须参数 1. 计价器产品服务分类Id：servCategId 2. 计价器产品二级分类Id：categId 3. 城市Id：cityId 4. 渠道Id：channelId 可选参数 1. 保内保外工程：bizType 默认保外 2. 页码：pageNum
//     * 默认第一页 3. 每页条数：pageSize 默认50
//     *
//     * @param tariffProductDIO
//     * @return
//     * @author tanbiao
//     * @see MeterFlowRemoteService#listTariffProductByQuery(com.zmn.plat.common.dto.price.meter.MeterFtProductQuery)
//     */
//    @Deprecated
//    @ApiOperation(value = "获取计价器产品", response = ResponseDTO.class, notes = "", tags = {"计价器"})
//    ResponseDTO<TariffProductPageDRO> listPageByTariffProductDIO(@NotNull(message = "入参不能为空") @Valid @ApiParam(value = "入参", required = true) TariffProductDIO tariffProductDIO);
//
//    /**
//     * 根据产品二级分类查询品牌 必须参数 1. 计价器产品服务分类Id：servCategId 2. 计价器产品一级分类Id：categOneId 3. 计价器产品二级分类Id：categId 可选参数 1. 页码：pageNum 默认第一页 2. 每页条数：pageSize
//     * 默认50
//     *
//     * @param faultTariffBrandRatioDIO
//     * @return BaseBrandDRO实体对象
//     * @see MeterFlowRemoteService#listBrandByQuery(com.zmn.plat.common.dto.price.meter.MeterBrandQuery)
//     */
//    @Deprecated
//    @ApiOperation(value = "根据产品二级分类查询品牌", response = ResponseDTO.class, notes = "", tags = {"计价器"})
//    ResponseDTO<BaseBrandPageDRO> listPageBrandByBrandFactorDIO(@NotNull(message = "入参不能为空") @Valid @ApiParam(value = "入参", required = true) TariffBrandFactorDIO faultTariffBrandRatioDIO);
//
//    /**
//     * 根据故障类型查询项目列表 必须参数 1. 计价器产品Id：tariffProductId 2. 故障类型Id：faultCategId 3. 渠道Id：channelId 4. 城市：cityId 可选参数 1. 保内保外：keepType 默认保外 2.
//     * 所选项目id集合：itemIds，第一步不需要，后面步骤需要根据所选的集合层层筛选满足要求的后台产品 （存在同一个计价器产品不同的后台产品会有不同的项目导致后续步骤报价有问题）
//     *
//     * @param tariffProductItemCategDIO
//     * @return
//     * @author tanbiao
//     * @see MeterFlowRemoteService#listItemByQuery(com.zmn.plat.common.dto.price.meter.MeterItemQuery)
//     */
//    @Deprecated
//    @ApiOperation(value = "根据故障类型查询项目列表", response = ResponseDTO.class, notes = "", tags = {"计价器"})
//    ResponseDTO<List<TariffProductItemDRO>>
//        listByTariffProductItemCategDIO(@NotNull(message = "入参不能为空") @Valid @ApiParam(value = "入参", required = true) TariffProductItemCategDIO tariffProductItemCategDIO);
//
//    /**
//     * 计价器产品对应的所有后台产品的二级分类列表 必须参数 1. 计价器产品Id：tariffProductId 2. 城市Id：cityId 3. 渠道Id：channelId 4.
//     * 所选项目id集合：itemIds，第一步不需要，后面步骤需要根据所选的集合层层筛选满足要求的后台产品 （存在同一个计价器产品不同的后台产品会有不同的项目导致后续步骤报价有问题） 可选参数 1. 保内保外：keepType 默认保外
//     *
//     * @param tariffCategoryDIO
//     * @return
//     * @see MeterFlowRemoteService#listBkCategByQuery(com.zmn.plat.common.dto.price.meter.MeterBkCategQuery)
//     */
//    @Deprecated
//    @ApiOperation(value = "计价器产品对应的所有后台产品的二级分类列表", response = ResponseDTO.class, notes = "", tags = {"计价器"})
//    ResponseDTO<List<TariffCategoryDRO>> listByTariffCategoryDIO(@NotNull(message = "入参不能为空") @Valid @ApiParam(value = "入参", required = true) TariffCategoryDIO tariffCategoryDIO);
//
//    /**
//     * 描述: 后台产品二级分类下的后台产品(计价器专用) 必须参数 1. 后台服务分类Id：servCategId 2. 城市Id：cityId 3. 渠道Id：channelId 4. 产品二级分类id：categId 5.
//     * 所选项目id集合：itemIds，第一步不需要，后面步骤需要根据所选的集合层层筛选满足要求的后台产品 （存在同一个计价器产品不同的后台产品会有不同的项目导致后续步骤报价有问题） 6. 计价器产品id:tariffProductId 可选参数 1. 保内保外：keepType
//     * 默认保外
//     *
//     * @param productDIO
//     * @return 产品集合
//     * @auther tanbiao
//     * @since 2019/11/21 11:29
//     * @see MeterFlowRemoteService#listBkProductByQuery(com.zmn.plat.common.dto.price.meter.MeterBkProductQuery)
//     */
//    @Deprecated
//    @ApiOperation(value = "后台产品二级分类下的后台产品", response = ResponseDTO.class, notes = "", tags = {"计价器"})
//    ResponseDTO<List<TariffBackProductDRO>> listProductByProductCategDIO(@NotNull(message = "入参不能为空") @Valid @ApiParam(value = "入参", required = true) TariffProductCategoryDIO productDIO);
//
//    /**
//     * 获取前台产品的二级分类,支持首字模糊匹配，支持分页，每页有多少条，由APP传入的参数决定 必须参数 1. 二级分类名称关键字：name 2. 二级分类级别：level 3. 二级分类类型：showType 4. 渠道id：channelId 5. 城市id：cityId
//     * 可选参数 1. 页码：pageNum 默认第一页 2. 每页条数：pageSize 默认50
//     *
//     * @param query
//     *            统一入参
//     * @return
//     * @see MeterFlowRemoteService#listFtCategByQuery(com.zmn.plat.common.dto.price.meter.MeterFtCategQuery)
//     */
//    @Deprecated
//    @ApiOperation(value = "获取前台产品的二级分类", response = ResponseDTO.class, notes = "首字模糊匹配", tags = {"计价器"})
//    ResponseDTO<TariffCategoryPageDRO> listCategoryPageByCategoryDIO(@NotNull(message = "入参不能为空") @Valid @ApiParam(value = "入参", required = true) TariffCategoryPageDIO query);
//
//    /**
//     * 描述: 提交报价接口 必须参数 1. 后台产品id：productId 2. 城市Id：cityId 3. 渠道Id：channelId 4. 所选项目id集合：itemIds，第一步不需要，后面步骤需要根据所选的集合层层筛选满足要求的后台产品
//     * （存在同一个计价器产品不同的后台产品会有不同的项目导致后续步骤报价有问题） 5. 计价器产品id：tariffProductId
//     * <p>
//     * 可选参数 1. 保内保外工程：bizType 默认保外 2. 品牌 brandId,不传递不参与计算
//     *
//     * @param query
//     * @return 产品集合
//     * @auther tanbiao
//     * @since 2019/11/21 11:29
//     * @see MeterFlowRemoteService#listQuoteByQuery(com.zmn.plat.common.dto.price.meter.MeterQuoteQuery)
//     */
//    @Deprecated
//    @ApiOperation(value = "提交报价", response = ResponseDTO.class, notes = "", tags = {"计价器"})
//    ResponseDTO<List<TariffProductItemPriceDRO>> listItemPriceByProductIdAndItemIds(@NotNull(message = "入参不能为空") @Valid @ApiParam(value = "入参", required = true) TariffProductItemPriceDIO query);
//
//    /**
//     * 描述: 后台二级分类不清楚 必须参数 1. 城市Id：cityId 2. 渠道Id：channelId 3. 所选项目id集合：itemIds， 4. 计价器产品id：tariffProductId
//     * <p>
//     * 可选参数 1. 保内保外：keepType 默认保外 2. 品牌 brandId,不传递不参与计算
//     *
//     * @param categoryDIO
//     * @return 产品集合
//     * @auther tanbiao
//     * @since 2019/11/21 11:29
//     * @see MeterFlowRemoteService#listQuoteUnknowByQuery(com.zmn.plat.common.dto.price.meter.MeterQuoteUnknowQuery)
//     */
//    @Deprecated
//    @ApiOperation(value = "后台二级分类不清楚", response = ResponseDTO.class, notes = "", tags = {"计价器"})
//    ResponseDTO<List<TariffProductItemPriceUnknownDRO>>
//        listProductPriceByTariffProductId(@NotNull(message = "入参不能为空") @Valid @ApiParam(value = "入参", required = true) TariffProductItemUnknowCategoryDIO categoryDIO);
//
//    /**
//     * 描述: 后台产品不清楚（确定了后台二级分类之后的报价） 必须参数 1. 服务分类id：servCategId 2. 城市Id：cityId 3. 渠道Id：channelId 4. 所选项目id集合：itemIds， 5. 计价器产品id：tariffProductId
//     * 6. 后台产品二级分类：categId 可选参数 1. 保内保外：keepType 默认保外 2. 品牌 brandId,不传递不参与计算
//     *
//     * @param categoryDIO
//     * @return 产品集合
//     * @auther tanbiao
//     * @since 2019/11/21 11:29
//     * @see MeterFlowRemoteService#listQuoteUnknowByQuery(com.zmn.plat.common.dto.price.meter.MeterQuoteUnknowQuery)
//     */
//    @Deprecated
//    @ApiOperation(value = "后台产品不清楚", response = ResponseDTO.class, notes = "确定了后台二级分类之后的报价", tags = {"计价器"})
//    ResponseDTO<List<TariffProductItemPriceUnknownDRO>>
//        listProductPriceByCategId(@NotNull(message = "入参不能为空") @Valid @ApiParam(value = "入参", required = true) TariffProductItemUnknowProductDIO categoryDIO);
//
//    /**
//     * 描述: 根据后台产品id和故障类型查询故障列表,报价完毕添加增值服务和其他服务等 必须参数 1. 计价器产品Id：tariffProductId 1. 后台产品Id：productId 2. 故障类型Id：faultCategId 3. 渠道Id：channelId 4.
//     * 城市：cityId 可选参数 1. 保内保外：keepType 默认保外
//     *
//     * @param productItemDIO
//     * @return
//     * @see MeterFlowRemoteService#listItemPriceByItemCategId(com.zmn.plat.common.dto.price.meter.MeterItemPriceQuery)
//     */
//    @Deprecated
//    @ApiOperation(value = "根据后台产品id和故障类型查询故障列表", response = ResponseDTO.class, notes = "报价完毕添加增值服务和其他服务等", tags = {"计价器"})
//    ResponseDTO<List<TariffProductItemPriceDRO>>
//        listByTariffBackProductItemCategDIO(@NotNull(message = "入参不能为空") @Valid @ApiParam(value = "入参", required = true) TariffBackProductItemCategDIO productItemDIO);
//
//    /********************************************* 下面的接口为北京定制的接口 *********************************************************************/
//
//    /**
//     * 通过城市ID，渠道ID，后台产品ID，查一口价故障服务项 必须参数 1. 产品id：productId 2. 城市Id：cityId 3. 渠道Id：channelId 可选参数 1. 保内保外：keepType 默认保外 2. 品牌 brandId,不传递不参与计算
//     *
//     * @param faultItemPriceDIO
//     * @return 产品集合
//     * @auther tanbiao
//     * @since 2019/11/21 11:29
//     * @see MeterFlowRemoteService#listItemPriceByPriceStandard(com.zmn.plat.common.dto.price.meter.MeterItemPriceQuery)
//     */
//    @Deprecated
//    @ApiOperation(value = "通过城市ID，渠道ID，后台产品ID，查一口价故障服务项", response = ResponseDTO.class, notes = "北京定制的接口", tags = {"计价器"})
//    ResponseDTO<List<TariffProductItemPriceDRO>>
//        listByProductItemPriceSplitItemDIO(@NotNull(message = "入参不能为空") @Valid @ApiParam(value = "入参", required = true) TariffProductItemPriceSplitItemDIO faultItemPriceDIO);
//
//    /**
//     * 通过城市ID，渠道ID，后台产品ID，查非一口价故障服务项（默认故障服务项） 必须参数 1. 产品id：productId 2. 城市Id：cityId 3. 渠道Id：channelId 可选参数 1. 保内保外：keepType 默认保外 2. 品牌
//     * brandId,不传递不参与计算
//     * 过时原因：不可能存在非一口价默认项
//     * @param faultItemPriceDIO
//     * @return 产品集合
//     * @auther tanbiao
//     * @since 2019/11/21 11:29
//     * @see MeterFlowRemoteService#listItemPriceByPriceStandard(com.zmn.plat.common.dto.price.meter.MeterItemPriceQuery)
//     */
//    @ApiOperation(value = "通过城市ID，渠道ID，后台产品ID，查非一口价故障服务项（默认故障服务项）", response = ResponseDTO.class, notes = "北京定制的接口", tags = {"计价器"})
//    @Deprecated
//    ResponseDTO<List<TariffProductItemPriceDRO>>
//        listByProductItemDefaultDIO(@NotNull(message = "入参不能为空") @Valid @ApiParam(value = "入参", required = true) TariffProductItemDefaultDIO faultItemPriceDIO);
//
//    /**
//     * 描述: 获取有计价器产品的服务品类
//     *
//     * @param channelId 渠道id
//     * @param cityId 城市id
//     * @return
//     * @author guoqiao
//     * @since 2021/8/4 13:53
//     * @see MeterFlowRemoteService#listServAndCategByChannelIdAndCity(java.lang.Integer, java.lang.Integer)
//     */
//    @Deprecated
//    @ApiOperation(value = "获取有计价器产品的服务品类", response = ResponseDTO.class)
//    ResponseDTO<List<ServCategoryChildrenDRO>> listServAndCategByChannelIdAndCity(@NotNull(message = "入参不能为空")
//                                                                                  @ApiParam(value = "渠道id", required = true) Integer channelId,
//                                                                                  @NotNull(message = "入参不能为空")
//                                                                                  @ApiParam(value = "城市id", required = true) Integer cityId);
//
//    /**
//     * 描述: 获取有计价器产品的二级分类
//     *
//     * @param channelId 渠道id
//     * @param cityId 城市id
//     * @return
//     * @author guoqiao
//     * @since 2021/8/4 13:53
//     * @see MeterFlowRemoteService#listTwoCategByChannelIdAndCity(java.lang.Integer, java.lang.Integer)
//     */
//    @Deprecated
//    @ApiOperation(value = "获取有计价器产品的二级分类", response = ResponseDTO.class)
//    ResponseDTO<TariffCategoryPageDRO> listTwoCategByChannelIdAndCity(@NotNull(message = "入参不能为空")
//                                                                      @ApiParam(value = "渠道id", required = true) Integer channelId,
//                                                                      @NotNull(message = "入参不能为空")
//                                                                      @ApiParam(value = "城市id", required = true) Integer cityId);
//
//
//
//
//
//}
